Data compression is a process that transforms data from a first representation into a second representation, in which the second representation is more compact than the first representation (e.g., more compact in term of the number of bytes used to store the representation). Data compression offers advantages for both data storage and data transmission. In the case of data storage, compressed data occupies less storage space, allowing more data to be stored for the same quantity of storage space. In the case of data transmission, compressed data can be transmitted with less power and in less time than uncompressed data.
Data compression, however, comes with some tradeoffs, including an increased delay between the time a request for data is received, and the time the data can be consumed (e.g., before music can be played, before a video can be viewed, etc.). One contributor of the increased delay is the step of decompression, which must be performed on compressed data before the compressed data can be consumed. Techniques to shorten such delay are discussed below.